n ,v = map(int,input().split())
ans = []
for i in range(n):
l = list(map(int,input().split()))
if min(l[1:]) < v:
ans.append(i+1)
ans.sort()
if ans :
print(len(ans))
print(*ans if ans else [0])
#include <bits/stdc++.h>
#include <iostream>
using namespace std;
#define int long long
#define toggle(x) (x = !x)
#define fl(i, a, b) for(int i=a;i<b;i++)
#define sort_(v) sort(v.begin(), v.end())
#define reverse_sort(v) sort(v.begin(),v.end(), greater<int>())
#define exchange(x) (x *= -1)
#define endl "\n"
const int mod = 1e9 + 7;
clock_t startTime;
double getCurrentTime() {
return (double)(clock() - startTime) / CLOCKS_PER_SEC;
}
//check if test cases is mentioned or not
void solve() {
int n, v;
cin>>n>>v;
int count =0;
set<int> res;
for(int i=1;i<=n;i++) {
int k;
cin>>k;
for(int j=1;j<=k;j++) {
int a;
cin>>a;
if(v > a) {
count++;
res.insert(i);
}
}
}
cout<<res.size()<<endl;
for(auto it: res) {
cout<<it<<" ";
}
}
int32_t main()
{
startTime = clock();
ios::sync_with_stdio(false);
cin.tie(0);
int t=1;
// cin>>t;
while(t--) {
solve();
}
return 0;
}
1584B - Coloring Rectangles | 1562B - Scenes From a Memory |
1521A - Nastia and Nearly Good Numbers | 208. Implement Trie |
1605B - Reverse Sort | 1607C - Minimum Extraction |
1604B - XOR Specia-LIS-t | 1606B - Update Files |
1598B - Groups | 1602B - Divine Array |
1594B - Special Numbers | 1614A - Divan and a Store |
2085. Count Common Words With One Occurrence | 2089. Find Target Indices After Sorting Array |
2090. K Radius Subarray Averages | 2091. Removing Minimum and Maximum From Array |
6. Zigzag Conversion | 1612B - Special Permutation |
1481. Least Number of Unique Integers after K Removals | 1035. Uncrossed Lines |
328. Odd Even Linked List | 1219. Path with Maximum Gold |
1268. Search Suggestions System | 841. Keys and Rooms |
152. Maximum Product Subarray | 337. House Robber III |
869. Reordered Power of 2 | 1593C - Save More Mice |
1217. Minimum Cost to Move Chips to The Same Position | 347. Top K Frequent Elements |